package com.module03.Q5_Poker;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Q5_PokerCardTest {

    public static void main(String[] args) {
//      所有牌的集合l1
        List<String> l1=new ArrayList();
//      标准牌序从大到小sort
        List<String> sort=new ArrayList();
//      声明4个玩家对象
        Q5_PokerPerson p1=new Q5_PokerPerson(1);
        Q5_PokerPerson p2=new Q5_PokerPerson(2);
        Q5_PokerPerson p3=new Q5_PokerPerson(3);
        Q5_PokerPerson p4=new Q5_PokerPerson(4);
        String s1="2，A，K，Q，J，10，9，8，7，6，5，4，3";
        String s2="红桃，黑桃，方片，梅花";
        String[] s3={"大王","小王"};
//      玩家手里的单张牌logo
        String logo="";
        String[] s4=s1.split("，");
        String[] s5=s2.split("，");
//      创建标准排序sort
        for(int i=0;i<15;i++){
            if(i<2){
                sort.add(s3[i]);
            }else{
                sort.add(s4[i-2]);
            }
        }

//      在l1中添加所有数字和花色组合后的牌
        l1.add(s3[0]);
        l1.add(s3[1]);
        for(int i=0;i< s4.length;i++){
            for(int j=0;j< s5.length;j++){
                l1.add(s5[j]+s4[i]);
            }
        }

//      打乱l1排序
        Collections.shuffle(l1);

//      给3位玩家和底牌对象发牌
        for(int i=0;i<17;i++){
            p1.addCard(l1.get(i));
        }

        for(int i=0;i<17;i++){
            p2.addCard(l1.get(i+17));
        }

        for(int i=0;i<17;i++){
            p3.addCard(l1.get(i+34));
        }

        for(int i=0;i<3;i++){
            p4.addCard(l1.get(i+51));
        }

        List<String> li1=p1.getPokers();
        List<String> li2=p2.getPokers();
        List<String> li3=p3.getPokers();
        List<String> li4=p4.getPokers();

//      按照标准牌序sort依次打印出玩家手中的牌
        System.out.println("1号玩家的扑克牌为：");
        for(int i=0;i<sort.size();i++){
            for(int j=0;j<li1.size();j++){
                if("大王"==li1.get(j) || "小王"==li1.get(j)){
                    logo=li1.get(j);
                }else{
                    logo=li1.get(j).substring(2);
                }
                if(logo.equals(sort.get(i))){
                    System.out.print(li1.get(j)+" ");
                }
            }
        }
        System.out.println();

//      按照标准牌序sort依次打印出玩家手中的牌
        System.out.println("2号玩家的扑克牌为：");
        for(int i=0;i<sort.size();i++){
            for(int j=0;j<li2.size();j++){
                if("大王"==li2.get(j) || "小王"==li2.get(j)){
                    logo=li2.get(j);
                }else{
                    logo=li2.get(j).substring(2);
                }
                if(logo.equals(sort.get(i))){
                    System.out.print(li2.get(j)+" ");
                }
            }
        }
        System.out.println();

//      按照标准牌序sort依次打印出玩家手中的牌
        System.out.println("3号玩家的扑克牌为：");
        for(int i=0;i<sort.size();i++){
            for(int j=0;j<li3.size();j++){
                if("大王"==li3.get(j) || "小王"==li3.get(j)){
                    logo=li3.get(j);
                }else{
                    logo=li3.get(j).substring(2);
                }
                if(logo.equals(sort.get(i))){
                    System.out.print(li3.get(j)+" ");
                }
            }
        }
        System.out.println();

//      按照标准牌序sort依次打印出底牌对象手中的牌
        System.out.println("底牌扑克牌为：");
        for(int i=0;i<sort.size();i++){
            for(int j=0;j<li4.size();j++){
                if("大王"==li4.get(j) || "小王"==li4.get(j)){
                    logo=li4.get(j);
                }else{
                    logo=li4.get(j).substring(2);
                }
                if(logo.equals(sort.get(i))){
                    System.out.print(li4.get(j)+" ");
                }
            }
        }
        System.out.println();
    }


}
